AnĂ¡lisis de Series Temporales

IOT Analytics

PreparaciĂ³n para analizar los datos. Series temporales

Objetivo

ProyecciĂ³n del consumo energĂ©tico a travĂ©s de series temporales.

Procedimiento

Estudiaremos los datos de consumo energético correspondientes a los años 2007 a 2009 a través de series temporales.

Haremos proyecciĂ³n de futuro para el año 2010 y compararemos los resultados con los datos reales de este Ăºltimo año (serie real).

Plot POA

Vamos a analizar la serie temporal del submedidor 3, aire acondicionado y termo elĂ©ctrico. Vamos a extraer 52 observaciones opr año, esto es igual a una observaciĂ³n diaria. Lunes a las 20h. Años 2007, 2008 y 2009

EvoluciĂ³n mensual del consumo. Años 2007-2009

Vamos a representar la serie por meses para cada submedidor y tambien para la energĂ­a global co granularidad mensual. En este caso, la frecuencia serĂ¡ 12, tenemos una observaciĂ³n por mes para los años 2007,8 y 2009.

Parece que los datos tienen estacionariedad (movimientos que se repiten cada año), esto ocurre para todas las variables.

EvoluciĂ³n diaria del consumo por meses

En este caso, crearemos una serie para cada mes, ya que la frecuencia de los datos no serĂ¡ la misma, al tener cada mes un nĂºmero de dĂ­as diferente.

Mes de Enero

Parece que no existen muchos patrones que nos podrĂ­an ayudar a hacer predicciones, no serĂ­an muy fiables. (grĂ¡fica muelle)

Mes de Febrero

Mes de Marzo

EvoluciĂ³n semanal del consumo. Años 2007-2009

Vamos a representar la serie por meses para cada submedidor y tambien para la energĂ­a global co granularidad mensual. En este caso, la frecuencia serĂ¡ 12, tenemos una observaciĂ³n por mes para los años 2007,8 y 2009.

Muelle

Forecasting antes de descomponer la serie

Vamos a plicar regresiĂ³n lineal a cada serie temporal, y veremos el valor de \(R^2\) y del error cuadrĂ¡tico medio.

EvoluciĂ³n mensual del consumo. Años 2007-2009

Modelo


Call:
tslm(formula = tsSM3_070809weekly ~ trend + season)

Residuals:
     Min       1Q   Median       3Q      Max 
-14.0000  -5.1012  -0.3333   1.2321  20.5654 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept) 10.10900    4.09735   2.467   0.0152 *
trend       -0.01087    0.01462  -0.744   0.4586  
season2     -3.52184    6.01621  -0.585   0.5596  
season3     -3.84430    6.01534  -0.639   0.5242  
season4     -9.50009    6.01451  -1.580   0.1173  
season5     -3.82255    6.01371  -0.636   0.5264  
season6      2.18832    6.01294   0.364   0.7166  
season7     -4.13414    6.01222  -0.688   0.4932  
season8     -9.45660    6.01152  -1.573   0.1187  
season9     -3.77906    6.01086  -0.629   0.5309  
season10    -3.76818    6.01024  -0.627   0.5321  
season11     1.90936    6.00966   0.318   0.7513  
season12    -3.41310    6.00910  -0.568   0.5713  
season13    -9.40223    6.00859  -1.565   0.1207  
season14    -9.39136    6.00811  -1.563   0.1211  
season15    -3.04715    6.00766  -0.507   0.6131  
 [ reached getOption("max.print") -- omitted 37 rows ]
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 7.863 on 104 degrees of freedom
Multiple R-squared:  0.2639,    Adjusted R-squared:  -0.1042 
F-statistic: 0.7169 on 52 and 104 DF,  p-value: 0.9077

Resultados:

  • Valor del coeficiente de determinaciĂ³n: 0.2639. Es un valor muy bajo, el modelo Ăºnicamente explica el 28% de la variabilidad total.

  • No hay coeficientes significativamente no nulos (p.valores > 0.05). El modelo los supone todos nulos (significativamente)

PredicciĂ³n IC

PredicciĂ³n para los prĂ³ximos 20 dĂ­as

HabĂ­a predicciones negativas, esto es muy grave. No puede haber un consumo negativo de energĂ­a.

EvoluciĂ³n diaria del consumo por meses

Modelo


Call:
tslm(formula = tsSM3_DiariaEnero ~ trend + season)

Residuals:
    Min      1Q  Median      3Q     Max 
-5223.2 -1643.5  -128.2  1968.5  6090.7 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 7359.3708  1811.1381   4.063  0.00014 ***
trend         -0.8762    12.5325  -0.070  0.94449    
season2     1941.2095  2497.7856   0.777  0.44006    
season3     -337.9143  2497.8799  -0.135  0.89284    
season4     1701.2952  2498.0371   0.681  0.49842    
season5     2241.8380  2498.2572   0.897  0.37305    
season6     1754.3809  2498.5401   0.702  0.48525    
season7     3264.9237  2498.8858   1.307  0.19627    
season8     5867.7999  2499.2943   2.348  0.02215 *  
season9     2021.6760  2499.7656   0.809  0.42180    
season10    3640.5522  2500.2996   1.456  0.15051    
season11    1613.7617  2500.8963   0.645  0.52117    
season12    2887.3045  2501.5556   1.154  0.25292    
season13    4624.5140  2502.2776   1.848  0.06943 .  
season14    3936.0569  2503.0621   1.572  0.12101    
season15    5955.9331  2503.9090   2.379  0.02052 *  
 [ reached getOption("max.print") -- omitted 16 rows ]
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3059 on 61 degrees of freedom
Multiple R-squared:  0.3269,    Adjusted R-squared:  -0.01514 
F-statistic: 0.9557 on 31 and 61 DF,  p-value: 0.5438

Resultados:

  • Valor del coeficiente de determinaciĂ³n: 0.3269. Es un valor muy bajo, el modelo Ăºnicamente explica el 28% de la variabilidad total.

  • Solo hay tres coeficientes significativamente no nulos

PredicciĂ³n IC

EvoluciĂ³n semanal del consumo. Años 2007-2009

Submetering 1

Modelo

Call:
tslm(formula = tsSM1_Semanal ~ trend + season)

Residuals:
   Min     1Q Median     3Q    Max 
-11708  -2978   1845   4714   7123 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  59656.6     4512.2  13.221 6.48e-09 ***
trend         -508.6      263.8  -1.928  0.07593 .  
season2      12293.0     5646.7   2.177  0.04850 *  
season3      23297.9     5665.1   4.113  0.00122 ** 
season4       7005.5     5695.7   1.230  0.24051    
season5      13062.8     5738.3   2.276  0.04039 *  
season6      81428.1     5792.6  14.057 3.07e-09 ***
season7      91174.1     5858.3  15.563 8.75e-10 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 6908 on 13 degrees of freedom
Multiple R-squared:  0.975, Adjusted R-squared:  0.9616 
F-statistic: 72.49 on 7 and 13 DF,  p-value: 2.122e-09

Resultados:

  • Valor del coeficiente de determinaciĂ³n: 0.04277. Es un valor extremadamente bajo, el modelo Ăºnicamente explica el 4.8% de la variabilidad total. Las predicciones no serĂ¡n nada fiables

  • Solo hay un coeficiente significativamente no nulo

PredicciĂ³n IC

Predicciones nada fiables, ademĂ¡s de los gigantes IC

Submetering 2

Modelo

Call:
tslm(formula = tsSM2_Semanal ~ trend + season)

Residuals:
   Min     1Q Median     3Q    Max 
-34037 -13452  -3470   8762  38539 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  88194.9    15111.4   5.836 5.82e-05 ***
trend        -2641.6      883.3  -2.991 0.010427 *  
season2      43786.9    18910.7   2.315 0.037565 *  
season3      73582.1    18972.5   3.878 0.001903 ** 
season4      -4120.0    19075.0  -0.216 0.832350    
season5      28106.0    19217.7   1.463 0.167355    
season6      64649.2    19399.5   3.333 0.005399 ** 
season7      83987.4    19619.5   4.281 0.000895 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 23140 on 13 degrees of freedom
Multiple R-squared:  0.7717,    Adjusted R-squared:  0.6487 
F-statistic: 6.276 on 7 and 13 DF,  p-value: 0.002282

Resultados:

  • Valor del coeficiente de determinaciĂ³n: 0.04866. Es un valor extremadamente bajo, el modelo Ăºnicamente explica el 4.8% de la variabilidad total. Las predicciones no serĂ¡n nada fiables

  • Solo hay dos coeficientes significativamente no nulos

PredicciĂ³n IC

Predicciones nada fiables, ademĂ¡s de los gigantes IC

Submetering 3

Modelo

Call:
tslm(formula = tsSM3_Semanal ~ trend + season)

Residuals:
   Min     1Q Median     3Q    Max 
-50070 -20032  -1703  18539  49320 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   410909      20033  20.511 2.76e-11 ***
trend           5485       1171   4.684 0.000427 ***
season2         4110      25070   0.164 0.872309    
season3        -5833      25152  -0.232 0.820231    
season4       -45960      25288  -1.817 0.092260 .  
season5        16778      25477   0.659 0.521682    
season6        36018      25718   1.401 0.184776    
season7       -48786      26010  -1.876 0.083330 .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 30670 on 13 degrees of freedom
Multiple R-squared:  0.7601,    Adjusted R-squared:  0.6309 
F-statistic: 5.884 on 7 and 13 DF,  p-value: 0.00305

Resultados:

  • Valor del coeficiente de determinaciĂ³n: 0.04866. Es un valor extremadamente bajo, el modelo Ăºnicamente explica el 4.8% de la variabilidad total. Las predicciones no serĂ¡n nada fiables

  • Solo hay dos coeficientes significativamente no nulos

PredicciĂ³n IC

Predicciones nada fiables, ademĂ¡s de los gigantes IC

ComparaciĂ³n de los coeficientes de cada modelo

   Submedidor     RMSE      R2
1      Cocina 24509.62 0.04277
2    Lavadero 22414.30 0.18390
3 AC y TermoE 65773.10 0.04866

Forecasting descomponiendo la serie (asĂ­ ok)

Descomponer: quitar tendencia

DescomposiciĂ³n y visualizaciĂ³n

POA

         Length Class  Mode     
x        157    ts     numeric  
seasonal 157    ts     numeric  
trend    157    ts     numeric  
random   157    ts     numeric  
figure    52    -none- numeric  
type       1    -none- character

Observamos una fuerte dependencia de la componente estacional.

EvoluciĂ³n semanal del consumo. Años 2007-2009

Submetering 1

         Length Class  Mode     
x        21     ts     numeric  
seasonal 21     ts     numeric  
trend    21     ts     numeric  
random   21     ts     numeric  
figure    7     -none- numeric  
type      1     -none- character

Componente estacional muy fuerte, tendencia no.

Submetering 2

         Length Class  Mode     
x        21     ts     numeric  
seasonal 21     ts     numeric  
trend    21     ts     numeric  
random   21     ts     numeric  
figure    7     -none- numeric  
type      1     -none- character
Submetering 3

         Length Class  Mode     
x        21     ts     numeric  
seasonal 21     ts     numeric  
trend    21     ts     numeric  
random   21     ts     numeric  
figure    7     -none- numeric  
type      1     -none- character

EvoluciĂ³n mensual del consumo. Años 2007-2009

Submetering 1

         Length Class  Mode     
x        36     ts     numeric  
seasonal 36     ts     numeric  
trend    36     ts     numeric  
random   36     ts     numeric  
figure   12     -none- numeric  
type      1     -none- character

Componente estacional muy fuerte, tendencia no.

Submetering 2

         Length Class  Mode     
x        36     ts     numeric  
seasonal 36     ts     numeric  
trend    36     ts     numeric  
random   36     ts     numeric  
figure   12     -none- numeric  
type      1     -none- character
Submetering 3

         Length Class  Mode     
x        36     ts     numeric  
seasonal 36     ts     numeric  
trend    36     ts     numeric  
random   36     ts     numeric  
figure   12     -none- numeric  
type      1     -none- character

EvoluciĂ³n diaria del consumo por meses para los años 2007-2009

Submetering 1

         Length Class  Mode     
x        93     ts     numeric  
seasonal 93     ts     numeric  
trend    93     ts     numeric  
random   93     ts     numeric  
figure   31     -none- numeric  
type      1     -none- character

Tendencia creciente, parece que no hay mucha estacionalidad.

Submetering 2

         Length Class  Mode     
x        93     ts     numeric  
seasonal 93     ts     numeric  
trend    93     ts     numeric  
random   93     ts     numeric  
figure   31     -none- numeric  
type      1     -none- character
Submetering 3

         Length Class  Mode     
x        93     ts     numeric  
seasonal 93     ts     numeric  
trend    93     ts     numeric  
random   93     ts     numeric  
figure   31     -none- numeric  
type      1     -none- character

PredicciĂ³n con Holt-Winters (suavizado exponencial)

POA

AĂºn parece que hay estacionalidad, pero la escala es tan pequeña que es prĂ¡cticamente nula, por tanto, asumimos estacionalidad.

Una vez que hemos eliminado la compoenente estacional, podemos hacer predicciones

Suavizado exponencial de HoltWinters

PronĂ³stico de HoltWinters

Vamos a predecir las prĂ³ximas 25 observaciones.

La predicciĂ³n es diferente que sin desestacionalizar la serie.

EvoluciĂ³n semanal del consumo. Años 2007-2009

Cocina

Parece un muelle.

Suavizado exponencial de HoltWinters

PronĂ³stico de HoltWinters

Vamos a predecir las prĂ³ximas 25 observaciones.

La predicciĂ³n es diferente que sin desestacionalizar la serie.

Lavadero

Parece un muelle.

Suavizado exponencial de HoltWinters

PronĂ³stico de HoltWinters

Vamos a predecir las prĂ³ximas 25 observaciones.

AnĂ¡lisis de series temporales con metodologĂ­a Box-Jenkis

Paso 1. Lectura y representaciĂ³n grĂ¡fica de los datos

Paso 2. Transformaciones para que la varianza sea estable en el tiempo

[1] 2
[1] -1.1  2.0

Usando la familia de transformaciones BoxCox, nos sugiere un valor de lambda = 2. El valor 1 (no transformar) estĂ¡ en el intervalo, al igual que el 0 (transformaciĂ³n logarĂ­tmica)

No transformamos los datos.

Ahora parece que las oscilaciones no crecen con el tiempo.

Paso 3. Transformaciones para que la media sea estable en el tiempo

[1] 1
[1] 0

Diferencia regular:

[1] 0

Paso 4. Contrastar la estacionariedad

Test de raiz unitaria.


    Augmented Dickey-Fuller Test

data:  tsSM3_SemanalDif
Dickey-Fuller = -6.2783, Lag order = 2, p-value = 0.01
alternative hypothesis: stationary

No existen evidencias significativas para afirmar que los datos no sean estacionarios. La media es estable en el tiempo.

Paso 5. Identificar la estructura ARIMA

MA(0) y AR(0).

Pasos 6 y 7. EstimaciĂ³n de parĂ¡metros y diagnĂ³stico

modelo ARIMA(0,1,0)xARIMA(0,1,0)


Call:
arima(x = tsSM3_Semanal, order = c(0, 1, 0), seasonal = list(order = c(0, 0, 
    0), period = 7))


sigma^2 estimated as 3.489e+09:  log likelihood = -248.11,  aic = 496.21


    Ljung-Box test

data:  Residuals from ARIMA(0,1,0)
Q* = 11.143, df = 4, p-value = 0.025

Model df: 0.   Total lags used: 4

Pasa la diagnosis: p-value = 0.025. El modelo es vĂ¡lido.

Series: tsSM3_Semanal 
ARIMA(3,1,0) with drift 

Coefficients:
          ar1      ar2      ar3     drift
      -1.2341  -1.1548  -0.6579  6092.903
s.e.   0.2171   0.1892   0.2114  1912.826

sigma^2 = 1.26e+09:  log likelihood = -237.16
AIC=484.31   AICc=488.6   BIC=489.29

Modelo propuesto: ARIMA(3,1,0)

aicAutoArima = 496.21 AICModelo1=484.31


    Ljung-Box test

data:  Residuals from ARIMA(3,1,0) with drift
Q* = 2.8112, df = 3, p-value = 0.4217

Model df: 4.   Total lags used: 7

No pasa la diagnosis, el modelo no es vĂ¡lido.

Nos quedamos con el modelo 1.

Paso 8. PredicciĂ³n de los resultados

AnĂ¡lisis de series temporales con metodologĂ­a Box-Jenkis

Paso 1. Lectura y representaciĂ³n grĂ¡fica de los datos

Paso 2. Transformaciones para que la varianza sea estable en el tiempo

$lambda
 [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
[20] 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0

$loglike
 [1] 60.59893 61.94022 63.21125 64.41278 65.54554 66.61042 67.60826 68.54006
 [9] 69.40675 70.20950 70.94950 71.62807 72.24657 72.80648 73.30932 73.75668
[17] 74.15020 74.49138 74.78224 75.02434 75.21938 75.36934 75.47536 75.53934
[25] 75.56288 75.54757 75.49491 75.40640 75.28345 75.12745 74.93970

$mle
[1] 2.4

$ci
[1] 1.5 3.0
[1] 2.4
[1] 1.5 3.0

Usando la familia de transformaciones BoxCox, nos sugiere un valor de lambda = 2. Datos al cuadrado

Ahora parece que las oscilaciones no crecen con el tiempo.

Paso 3. Transformaciones para que la media sea estable en el tiempo

[1] 0
[1] 1

Diferencia estacional:

[1] 0

Paso 4. Contrastar la estacionariedad

Test de raiz unitaria.


    Augmented Dickey-Fuller Test

data:  tsSM3_MensualTransfDif
Dickey-Fuller = -2.6388, Lag order = 2, p-value = 0.329
alternative hypothesis: stationary

Los datos no son estacionarios